package com.fanrui.code.thread;

import com.fanrui.code.util.logger.Stdout;

public abstract class LogExceptionRunnable implements Runnable {

	@Override
	final public void run() {
		try {
			logExceptionRun();
		} catch (Throwable t) {
			// 注意这里吃掉了异常，是为了保证定时任务不会被终止。
			Stdout.GET().error("执行［" + toString() + "］过程中出现错误！", t);
			t.printStackTrace();
			throw new RuntimeException(t);
		}
	}
	
	protected abstract void logExceptionRun() throws Exception;

}
